package com.iwhalecloud.citybrain.flow.platform.manager.application.service;

import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.User;
import com.iwhalecloud.citybrain.flow.platform.manager.domain.model.userentity.UserInfo;

import java.util.List;

/**
　　* @description: 用户服务接口
　　* @author shenrm
　　* @date 2021/10/27 18:20
　　*/
public interface UserService {

    /**
     * 通过用户的名称获取符合条件的用户信息列表
     *
     * @param userName
     * @return
     */
    List<UserInfo> getUserList(String userName);

    /**
     * 获取全量的用户信息
     *
     * @return
     */
    User getFullUserInfo(String userId);

    /**
     * 只获取单个用户信息对象
     *
     * @param userId
     * @return
     */
    UserInfo getUserInfoObj(String userId);

    /**
     * 只返回用户信息，无组织、角色、岗位等信息
     * @param userId
     * @return
     */
    User getSingleUser(String userId);

    /**
     * 批量查询用户信息
     * @param userIdList
     * @return
     */
    List<UserInfo> getUserListByUserIdList(List<String> userIdList);

    /**
     * 根据员工工号集合批量查询用户信息
     * @param employeeCodeList
     * @return
     */
    List<UserInfo> getUserListByEmployeeCodeList(List<String> employeeCodeList);

    /**
     * 根据用户账号获取用户信息
     *
     * @param userAccount
     * @return
     */
    UserInfo getUserInfoByUserAccount(String userAccount);

    /**
     * 根据用户ID查询用户工号
     */
    String getEmployeeCodeById(String userId);
}
